// #include <stdio.h>
// #include <stdlib.h>
// #include <stdbool.h>
//
// #define MAX_SIZE 100
//
// // 定义树节点结构
// typedef struct TreeNode {
//     int data;
//     struct TreeNode* left;
//     struct TreeNode* right;
// } TreeNode;
//
// // 定义队列结构
// typedef struct {
//     TreeNode* data[MAX_SIZE]; // 存储 TreeNode* 类型的指针
//     int front;
//     int rear;
// } Queue;
//
// // 初始化队列
// void initQueue(Queue* q) {
//     q->front = q->rear = -1;
// }
//
// // 判断队列是否为空
// bool isQueueEmpty(Queue* q) {
//     return q->front == -1;
// }
//
// // 判断队列是否已满
// bool isQueueFull(Queue* q) {
//     return (q->rear + 1) % MAX_SIZE == q->front;
// }
//
// // 入队操作
// bool enqueue(Queue* q, TreeNode* value) {
//     if (isQueueFull(q)) {
//         printf("Queue is full!\n");
//         return false;
//     }
//     if (isQueueEmpty(q)) {
//         q->front = q->rear = 0;
//     } else {
//         q->rear = (q->rear + 1) % MAX_SIZE;
//     }
//     q->data[q->rear] = value;
//     return true;
// }
//
// // 出队操作
// bool dequeue(Queue* q, TreeNode** value) {
//     if (isQueueEmpty(q)) {
//         printf("Queue is empty!\n");
//         return false;
//     }
//     *value = q->data[q->front];
//     if (q->front == q->rear) {
//         q->front = q->rear = -1;
//     } else {
//         q->front = (q->front + 1) % MAX_SIZE;
//     }
//     return true;
// }
//
// // 创建树节点
// TreeNode* createTreeNode(int data) {
//     TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
//     node->data = data;
//     node->left = node->right = NULL;
//     return node;
// }
//
// // 层次遍历
// void levelOrderTraversal(TreeNode* root) {
//     if (root == NULL) return;
//
//     Queue q;
//     initQueue(&q);
//     enqueue(&q, root);
//
//     while (!isQueueEmpty(&q)) {
//         TreeNode* node;
//         dequeue(&q, &node);
//         printf("%d ", node->data);
//
//         if (node->left != NULL) {
//             enqueue(&q, node->left);
//         }
//         if (node->right != NULL) {
//             enqueue(&q, node->right);
//         }
//     }
// }
//
// int main() {
//     TreeNode* root = createTreeNode(1);
//     root->left = createTreeNode(2);
//     root->right = createTreeNode(3);
//     root->left->left = createTreeNode(4);
//     root->left->right = createTreeNode(5);
//     root->right->left = createTreeNode(6);
//     root->right->right = createTreeNode(7);
//
//     printf("Level order traversal: ");
//     levelOrderTraversal(root);
//     printf("\n");
//
//     return 0;
// }